package cas.ihep.fs;

import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

public interface UnifiedAbstractFileSystem extends Closeable{

    UnifiedFile open(URI path,UnifiedFileSystem.OpenOptions options)throws IOException;
    UnifiedFile create(URI path,UnifiedFileSystem.CreateOptions options)throws IOException;
    InputStream openStream(URI path,UnifiedFileSystem.OpenOptions options)throws IOException;
    OutputStream createStream(URI path,UnifiedFileSystem.CreateOptions options)throws IOException;
    void persist(URI path)throws IOException;
    void persist(UnifiedFile file)throws IOException;
    void free(URI path)throws IOException;
    void free(UnifiedFile file)throws IOException;
    void delete(URI path)throws IOException;
    void delete(UnifiedFile file)throws IOException;
    void mkdir(URI path,UnifiedFileSystem.CreateOptions options)throws IOException;
}
